Spring 2024 Preparation

Spring 2024 Preparation

Posted on 2023-12-14

Spring 2024 Goals and Changes

  • Overall:
    • All-in-one Book: I am intending to compile all of the course resources for a given class into what I'm calling a "Book". Using Orgmode, I intend to compile the reading material (which I've written over the years) and various assignments and assignment documentation all into one place. Since I am using Orgmode, this can be exported to an HTML webpage or a PDF "book" like file. You can view my orgmode docs here: https://moosadee.gitlab.io/courses/.
    • More emphasis on debugging: Across all my classes I am planning on adding on smallish assignments on debugging. This may include broken code with a description of what is expected to happen and what actually happens, or a build error message. The purpose is to have students analyze the code and be able to describe what is going wrong. Hopefully this will help with debugging their own code as well.
    • An alternative to videos?: For a year or so I've been thinking about developing something - or using an already existing JS library - to present my course slides with audio and an auto-play option. The intention is to give a similar presentation to what my video lectures offer, BUT to be totally stored in the HTML of a page (which makes revising easier) and to store seprate audio files for each "slide" (which makes re-recording spoken parts easier).
    • Attendance, but for data: I don't like tying points to attendance, though I am thinking that I might start taking attendance just for the sake of data throughout the semester, such as "attendance (Zoom? in person?) vs. grade".
    • Auto-diff: Since all my courses will once again be utilizing Git, this will make it easier for me to write scripts to auto-diff everybody's submissions. I will be able to check for plagiarism in a more managable way.
    • Automated testing: ALL lab assignments HAVE or WILL HAVE automated tests / unit tests built into them. This will help me with grading these smaller lab assignments quickly. Larger projects could have some automated tests but will probably require a large amount of manual grading.
    • Emphasis on code citation: I am going to write a resource on "how to cite code", probably to go with my course Style Guide. The intention is so that if students utilize code from elseware (Stack Overflow, AI, textbooks, my own code) that they know how to appropriately give credit and avoid plagarizing.
  • CS 200: Concepts of Programming with C++
    • Nonograms:

      I want my students to practice patience, analysis of problems, and deduction skills, and honestly I think a great way to do this is with puzzles like Sudoku or Nonograms. The perk of a Nonogram (aka "Picross") is that the result is a little pixel image, which will be easier to grade "at a glance".
    • Back to GitLab: Before I moved over to using Replit in my CS 200 course, I had students utilizing GitLab. For this entry-level C++ course I just had students utilizing GitLab through the web interface and uploading files via the web as well - more advanced topics covered in CS 235 and CS 250. Going back to using Git also makes my job a bit easier with grading as I can clone each student's repository onto my local machine.
    • MinGW?: I am currently trying to figure out an easy-enough way to teach my CS 200 students how to build their C++ programs from the command line, in addition to using something like Visual Studio or Code::Blocks. Replit allowed me to teach students about this via the Shell in their Replit projects and I think in the long term this has been valuable, especially for students who are on Mac computers.
  • CS 235: Object Oriented Programming with C++
    • In Fall 2023 I had four duplicate codebases across my two sections of CS 235. This Spring I would ideally like to have one big codebase, though I need to take FERPA restrictions into account. Right now I am thinking that having a combined codebase should be OK as long as I let students know it's combined, and to encourage them to register an account with a non-identifying username/email address if they do not wish to have their legal name associated with it. I will look into this more.
  • CS 250: Basic Data Structures using C++
    • The topics of this course are pretty much the same, there's only so many different ways to have a "write a Linked List" assignment. However I plan on updating the unit tests, updating the documentation, and changing up the semester projects and approaching them in a different way than previously. Still hashing out details. :)

During semester notes (WIP)